package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import java.util.Vector;

import vista.equipoV;

import modelo.Mequipo;
import modelo.Mjugador;
import modelo.Mtemporada;
import modelo.TablaEquipos;


public class equipoC implements ActionListener {

	private equipoV ve;
	private Mequipo me = new Mequipo();
	private Mtemporada mt;
	//private int indice = 0;

	public equipoC(Mtemporada mt) {
		super();
		// TODO Auto-generated constructor stub
		this.ve = new equipoV();
		this.ve.setLocation(160, 20);
		this.ve.setVisible(true);
		this.ve.addListener(this);
		this.ve.ocultarBoton(false);
		
		this.mt = mt;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String actionComand = e.getActionCommand();
		if (actionComand.equals("Registrar")) {
			if (me.getVjuga().size() > 0) {
				registrarEquipo();
				ve.Limpiar();
				ve.getBtngenerar().setVisible(true);
				this.ve.setVisible(false);
			} else
				ve.mensaje("Debe cargar Antes de registrar");
		} else if (actionComand.equals("Cancelar")) {
			ve.Limpiar();
			ve.limpiarTabla();
			ve.getBtngenerar().setVisible(true);

		} else if (actionComand.equals("Cargar")) {
			ve.ocultarBoton(true);
			try {
				cargarJugadores();
			} catch (NumberFormatException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

			// this.ve.setResultados(new TablaEquipos(getVjugador()));
			ve.getBtngenerar().setVisible(false);
			ve.ocultarBoton(true);
			
		}
		
	}

	public void registrarEquipo() {
		try {
			if (ve.getCodequipo().equals("") || ve.getNomequipo().equals("")
					|| ve.getAnof().equals("") || ve.getCiudad().equals("")
					|| ve.getEstadio().equals("")) {
				ve.mensaje("Hay Campos vacios, por favor llene todos los campos");
				ve.Limpiar();
			} else {
				String codequipo = ve.getCodequipo();
				String nomequipo = ve.getNomequipo();
				String anof = ve.getAnof();
				String ciudad = ve.getCiudad();
				String estadio = ve.getEstadio();
				Vector<Mjugador> vjug = new Vector<Mjugador>();
				vjug = me.getVjuga();
				//me.limpiarVector();
				Mequipo me = new Mequipo(codequipo, nomequipo, anof, ciudad,
						estadio, 0, 0, 0, vjug);
				mt.agregarEquipo(me);
				ve.mensaje("El Equipo ha sido registrado");
				imprimirEquipo();

				ve.Limpiar();
				ve.limpiarTabla();
			}
		} catch (Exception e) {
			ve.mensaje("El Equipo no ha sido registrado, verifique los datos");
			ve.Limpiar();
			ve.limpiarTabla();
		}
	}

	public void cargarJugadores() throws NumberFormatException,
			IOException {

		File f;
		javax.swing.JFileChooser j = new javax.swing.JFileChooser();
		j.showOpenDialog(j);
		String ruta = j.getSelectedFile().getAbsolutePath();

		FileReader fr = new FileReader(ruta);
		BufferedReader fb = new BufferedReader(fr);
		String cedula;
		String nombre;
		String apellido;
		String fechan;
		String posicion;
		int cari;
		int homerum;
		String cadena;
		while ((cadena = fb.readLine()) != null) {
			cedula = cadena;
			nombre = fb.readLine();
			apellido = fb.readLine();
			fechan = fb.readLine();
			posicion = fb.readLine();
			cari = Integer.parseInt(fb.readLine());
			homerum = Integer.parseInt(fb.readLine());

			Mjugador mju = new Mjugador(cedula, nombre, apellido, fechan,
					posicion, cari, homerum);

			me.agregarJugador(mju);
			// System.out.println(cedula+nombre+apellido+fechaNacimiento+posicionJuego+golesAnotados);

		}
		Vector<Mjugador> aux = me.getVjuga();
		ve.setResultados(new TablaEquipos(aux));
	}


	public void imprimirEquipo() {
		Vector<Mequipo> vequipo = mt.getVequipo();
		for (int i = 0; i < vequipo.size(); i++) {
			System.out.println("codigo: " + vequipo.get(i).getCodequipo());
			System.out.println("nombre: " + vequipo.get(i).getNomequipo());
			System.out.println("a�o: " + vequipo.get(i).getAnof());
			System.out.println("ciudad: " + vequipo.get(i).getCiudad());
			System.out.println("estadio: " + vequipo.get(i).getEstadio());
			System.out.println("jj: " + vequipo.get(i).getJj());
			System.out.println("jg: " + vequipo.get(i).getJg());
			System.out.println("jp: " + vequipo.get(i).getJp());
			System.out.println("Plantilla de Jugadores: "
					+ vequipo.get(i).getVjuga().get(0).getNombre());
			// System.out.println("Plantilla de Jugadores: "+vequipo.get(i).getVjuga().get(1).getNombre());
		}
	}

}
